package bsh.meta;

import java.util.List;

/**
 * An {@link UnfinishedType} that represents an inner type
 * 
 * @author takeshi
 */
public interface UnfinishedInnerType extends UnfinishedType {

    /**
     * @return {@link List} of external variable names used by this inner class
     */
    List<String> externalVariables();

    /**
     * @return {@link FieldDescriptor} that access the enclosing instance. May be null if this is a static inner class
     */
    FieldDescriptor getEnclosingInstanceField();

    /**
     * @param arrayList the external variables used by this inner class
     */
    void setExternalVariables(List<String> arrayList);

}
